package com.legolas.demo.dao.mapper;

import com.legolas.demo.domain.Resource;
import com.legolas.demo.domain.Role;
import com.legolas.demo.domain.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;


@Repository
public interface UserMapper {

    //增加用户
    void addUser(User user);

    //增加用户角色
    void addUserRole(@Param("uid") int uid, @Param("roleId") int roleId);

    //更新用户
    void updateUser(@Param("user") User user);

    //获取全部角色
    List<User> queryAllUser();

    //通过名称获取用户信息
    User queryUserByName(@Param("username") String username);

    //通过id获取角色信息
    User queryUserById(@Param("id") int id);

    //获取某个用户所有角色
    List<Role> queryRoleByUserId(@Param("uid") int uid);

    //根据用户据id获取该用户可以访问的资源
    List<Resource> queryResourceByUserId(@Param("uid") int uid);

    //删除用户
    void deleteUser(@Param("id") int id);

    //删除某个用户的全部角色
    void deleteUserRoleByUserId(@Param("uid") int uid);

}
